package com.yunxi.sto.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.sto.pojo.StoTransportPlanPickVO;
import com.yunxi.sto.pojo.StoTransportPlanQueryVO;
import com.yunxi.sto.pojo.StoTransportPlanResVO;
import com.yunxi.sto.pojo.StoTransportPlanVO;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 运输计划单 服务类
 * </p>
 *
 * @author caoYong
 * @since 2019-05-23
 */
public interface StoTransportPlanDubboService {

    StoTransportPlanVO getById(String id) throws InvocationTargetException, IllegalAccessException;

    void saveOrUpdate(StoTransportPlanVO stoTransportPlanVO) throws InvocationTargetException, IllegalAccessException;

    void removeById(List<String> list) throws  Exception;

    void route(String transportPlanId,String routeCode) throws  Exception;

    List carrierList(String routeCode);

    void carrier(String transportPlanId,String carrierCode)throws  Exception;

    PageInfo<StoTransportPlanResVO> findPageByVO(StoTransportPlanQueryVO stoTransportPlanQueryVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    /**
     * 根据VIN码查询运输计划是否已下发到TMS
     * @param vin
     * @return true未下发,false已下发
     */
    Boolean checkTransportPlanIsSend(String vin)throws Exception;

    /**
     * 根据VIN码取消运输计划
     * @param vin true取消成功,false取消失败
     */
    Boolean cancelTransportPlanByVin(String vin)throws Exception;

    void pickVehicle(StoTransportPlanPickVO stoTransportPlanPickVO)throws Exception;

}
